Many business applications have been developed to meet the various needs of organizations, such as companies, nonprofit organizations, and governmental agencies. These business applications may include customer relationship management (“CRM”) applications, inventory management applications, human resource applications, accounting applications, payroll applications, project management applications, and so on. Each of these business applications needs to manipulate data of the organization. For example, a CRM application of an organization may need to track requests for proposals received from customers of the organization and submission of the responses prepared by the organization. As another example, a payroll application of an organization may need to track the salaries of its employees along with requests for salary increases and their approvals.
Data of an organization may be represented as “business objects” or documents corresponding to various tasks performed by the organization. For example, a CRM application may have business objects that represent requests for proposals and business objects that represent the responses. A payroll application may have business objects that represent requests for salary adjustments. As another example, an accounting application may have business objects that represent purchase orders.
Many business objects of business applications may need to go through an approval process. For example, a response to a request for a proposal may need to be approved by the president of the organization, the accounting department of the organization, and an engineering committee of the organization. Within the accounting department, the response may need to be approved by members of an audit committee and by the chief financial officer. The response may need to be approved by a majority of the members of the engineering committee. In large organizations, the approval process can be a very complex process in which certain approvals may not be needed depending on attributes of the business object (e.g., a purchase order for less than $100), the approval of one department depends on the approval of various members of the department, one approval depends on the outcome of a prior step (e.g., the approval of the president is only requested after approval by the accounting department or only requested when the accounting department does not approve), and so on.
Many business applications provide a workflow management capability that allows an organization to define how data of the organization is to be processed. For example, a customer service department of an organization may define a workflow for how complaints are processed. The department may define a workflow that directs each complaint to be stored in a complaint log and sent to an initial screener. The initial screener may annotate the complaint before it is forwarded for review to both the department manager and a customer service representative. Depending on the recommendations of the reviews, the complaint may be forwarded to an automated response system or to an executive for further review. In a manufacturing environment, a workflow may specify the workstations that need to process a product and the order in which they need to process the product.
The approval process for a business object is a type of workflow. Thus, the workflow capabilities of a business application can be modified to support the tracking of approvals of business applications. Complex approval workflows can have many parallel approval paths with many serial approval steps in a path. Each path may branch into multiple other paths resulting in a complex tree-like structure. The existing user interfaces for displaying the information about an approval workflow have not allowed a user to easily grasp the overall status of such complex approval workflows including statuses of both past (e.g., already approved) and future (e.g., not yet approved) steps.